home *** CD-ROM | disk | FTP | other *** search
- Short: Ultimate Amiga PS/2 WheelMouseController
- Author: rdc@mindless.com
- Uploader: rdc@mindless.com
- Version: 1.2
- Type: hard/hack
-
- Amiga PS/2 Wheel Mouse Controller - new version:
-
- - more compatible firmware, for example it supports Dexxa mice
- - more advanced WBM utility:
- - added qualifiers for scrolling direction change
- - added reverse of concrete wheel direction
-
-
- Advantages of this controller:
-
- - full open source under GPL
- (General Public License, text of license included)
- - linear movement interpolation: mouse movements will be
- ideal smooth at any screen frame rates
- - MMB (Middle Mouse Button) support
- - detection of Amiga mouse counters overrun
- (127 pixels per frame for DblPAL 48Hz)
- - full Plug'n'Play support:
- hotswap - you can change mouse "on the fly"
- - mouse hangs detection: controller checks mouse every
- 2 seconds and will reset it if mouse doesn't reply
- - support of popular Microsoft Intellimouse wheel protocol
- (for example, Genius NetScroll)
- - fully compatible with Amiga NewMouse wheel standard
- - fully compatible with WheelBusMouse software
- - you can simultaneously use mouse & 2 joysticks
- - no "calibration" requirements
- - wheel works in any screen mode
- - horizontal scrolling even on one-wheel mouse
- - most advanced Amiga PS/2 mouse controller :-)
-
-
- More detailed info:
-
- - detection of Amiga mouse counters overrun:
-
- Amiga has only one-byte signed counters for mouse, and AmigaOS
- checks them only one time per vblank. This means that mouse may
- move only 127*VBlankFreq pixels per second (6096 pixels per
- second for default DblPAL). If this value was overran, AmigaOS
- can't detect true movement of mouse and pointer will disorderly
- jump. For correct this, my PS/2 controller limits movement to
- maximum 6000 pixels per second. If mouse moves faster, movement
- will be remembered and executed at 6000 pixels per second.
-
- Slower movements will be always executed at real speed.
-
- - linear movement interpolation:
-
- As we know, RS-232C (aka "COM") mice at PeeCee are extremely
- poor quality - mouse pointer with them doesn't move, it jumps.
- It is because generic 3-button RS-232C mouse reports about
- movement only 25 times per second. PS/2 mice work better - all
- of them can report about state 80 times per second, and most of
- them (excluding 5-button mice) can report 200 times per second.
- But it is not an ideal because refresh rate of mouse (for
- example, 80fps of Genius NetScroll Optical) interferes with
- similar refresh rate (for example, 72Hz of Super72). For correct
- this, my controller moves "virtual Amiga mouse" smoothly. If
- user moves PS/2 mouse at 500 pixels per second, Amiga will get
- from my PS/2 controller true 500 counts per second, with true
- 2-milliseconds intervals - you can get oscilliscope and check it.
-
- Most another PeeCee-mouse-controllers don't have similar feature,
- and move "virtual Amiga mouse" by "count packets" after every
- byte packet from PeeCee-mouse. For example, if user moves
- RS-232C mouse at 500 pixels per second, and mouse sends 25
- reports per second, Amiga will get 25 packets of 20 fast (some
- microsecond between counts) counts per second, with approx.40
- milliseconds interval between packets. If user has 75Hz screen
- refresh rate, mouse pointer will update only every three vblank,
- and jumps of pointer (in comparison with ideally smooth Amiga
- mouse) will only incline user to suicide using mouse cord :-)
-
- My PS/2 controller is free from this bug. Theoretically I can do
- even smooth RS-232C mouse controller, but is it nonsense because
- of RS-232C mice death. Modern optical mice already don't have
- RS-232C versions, but there is no modern mice without PS/2 version.
-
- - mouse hangs detection:
-
- Some Chinese mice are very cheap and very unstable. Integrated
- to mouse controller can hang and even don't response to reset
- command. These mice on PeeCee require reconnect (and sometimes
- reboot because of not-PnP initial nature of PeeCee). My
- controller in case of 2-seconds silence (user doesn't touch
- mouse) asks mouse about state. If mouse doesn't respond,
- controller will automatically take away power souce for some
- time.
-
- - full Plug'n'Play support:
-
- Because of previous feature, controller will detect mouse
- replacement. Unlike PeeCee, wheel function (or it's absence)
- will be detected automatically. You don't need to replace
- drivers if you change mouse "on the fly" :)
-
- - support of popular Microsoft Intellimouse wheel protocol
-
- Microsoft (for this paragraph it is a company name, not an abuse)
- instead of it's normal practice to hide all details, published
- protocol of wheel mouse. It has two "layers": protocol of wheel
- mouse, and protocol of 5-button wheel mouse. There are many
- Microsoft Intellimouse compatible devices (for example, Genius
- NetScroll Optical), and all of them will work with wheel at my
- controller. Unfortunately, protocol of my Genius mouse differs
- from Microsoft 5-button protocol, and I don't support 5 buttons
- yet.
-
- I don't have info about Intellimouse compatibility of other
- devices. Don't ask me.
-
- - fully compatible with Amiga NewMouse wheel standard
-
- Amiga NewMouse standard describes an internal AmigaOS protocol
- for wheel mice. There are some NewMouse-compatible sofware,
- MUIWheel and Directory Opus Magellan for example. All this
- software will work with my PS/2 controller.
-
- - fully compatible with WheelBusMouse software
-
- WheelBusMouse is a software driver early released by me, that
- allows to use any wheel mouse without controller (but you must
- alter the mouse). My PS/2 controller is fully electrically
- compatible with WBM package. This means that you can install
- WBM driver and use altered wheel mouse instead of soldering
- PS/2 controller. Or you even can connect second mouse and use
- it as a scroller :-)
-
- - you can simultaneously use mouse & 2 joysticks
-
- You can use joystick(s) in parallel with mouse: pressing "Fire"
- of any joystick will disable mouse function on this port.
-
- If you press "Fire" on Joy1 (wheel function) - wheel will be
- reseted to initial phase (don't touch wheel during game).
-
- If you press "Fire" on Joy2 (mouse port) - mouse will be disabled
- at all. For protect against probable mouse movement, mouse will
- be enabled only after any mouse button pressing.
-
- - no "calibration" requirements
-
- My controller doesn't use analog inputs and doesn't require
- calibration (like Mroocheck interface from Elbox).
-
- - wheel works in any screen mode
-
- Wheel works in any screen mode - you can simultaneously use
- wheeled applications on PAL, DblPAL, Super72 or any other
- screens (unlike Mroocheck with horizontal rate setting).
-
- - horizontal scrolling even on one-wheel mouse
-
- You can switch vertical scrolling to horizontal by qualifier
- pressing - like MMB in Mroocheck, but you can select any
- qualifier key or joystick/mouse button. For example - I use
- left ALT.
-
- - most advanced Amiga PS/2 mouse controller.
-
- Do you doubt in this yet? :) ;) =)
-
-
- All instructions included. Have fun!
-